export default {
  data() {
    return {
      pagitionLoading: false,
      nextPage: -1,
      showNoMore: false,
      mark: "",
    };
  },
  computed: {
    loadingType() {
      return this.nextPage > 0
        ? this.pagitionLoading
          ? "loading"
          : "loadmore"
        : "nomore";
    },
  },
  methods: {
    /*-------------------上拉加载部分--------------------------------*/
    /**
     * 上拉加载
     */
    pullupLoading(mark = "getList") {
      this.mark = mark;
      //获取更多
      this.loadMore();
      this.showNoMore = true;
    },

    /**
     *  获取更多
     */
    loadMore() {
      //判断是否在加载中
      if (this.isLoading()) {
        return;
      }
      if (this.hasMore()) {
        this.loading();
        //开始获取数据
        this[this.mark]({});
      }
    },

    /**
     * 判断是否在加载状态
     * @returns {boolean}
     */
    isLoading() {
      return !!this.pagitionLoading;
    },

    /**
     * 解锁 完成加载
     */
    unLoading() {
      this.pagitionLoading = false;
    },

    /**
     * 判断是否获取更多
     * @returns {boolean}
     */
    hasMore() {
      if (this.nextPage > 0) {
        return true;
      } else {
        return false;
      }
    },

    /**
     * 加载中 加锁
     */
    loading() {
      this.pagitionLoading = true;
    },
  },
};
